<template>
  <header class="header">
    <h1>todos</h1>
    <input
      id="toggle-all"
      class="toggle-all"
      type="checkbox"
      v-model="isAll"
      :disabled="list.length <= 0"
    />
    <label for="toggle-all"></label>
    <input
      class="new-todo"
      placeholder="输入任务名称-回车确认"
      autofocus
      v-model.trim="content"
      @keyup.enter="addFn"
    />
  </header>
</template>

<script>
import { mapMutations, mapState } from "vuex";
export default {
  data() {
    return {
      content: "",
    };
  },
  computed: {
    ...mapState("todos", ["list"]),
    isAll: {
      set(val) {
        this.changeIsAll(val);
      },
      get() {
        if (this.list.length <= 0) return;
        return this.list.every((item) => item.isDone);
      },
    },
  },
  methods: {
    ...mapMutations("todos", ["add", "changeIsAll"]),
    addFn() {
      if (this.content.length === 0) {
        return alert("输入内容不能为空");
      }
      this.add(this.content);
      this.content = "";
    },
  },
};
</script>
